package top.kaoshanji.p2ch17a;

import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;

/**
 * 代码清单-p2ch17a-534页a：一个删除目录树的工具
 * author kaoshanji
 * ^_^
 * create time 2025/3/11 16:11
 */
public class RmDir {

    public static void rmdir(Path dir) throws IOException {

        Files.walkFileTree(dir, new SimpleFileVisitor<Path>(){

            // 先进入当前目录下的文件和目录（包括所有的子目录），最后在当前目录上运行
            @Override
            public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
                Files.delete(dir);
                return FileVisitResult.CONTINUE;
            }

            // 在这个目录下的每个文件上运行
            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                Files.delete(file);
                return FileVisitResult.CONTINUE;
            }
        });


    }

}
